package com.olive.controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cloud.stream.function.StreamBridge;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

import com.olive.dto.MessageDTO;

@RestController
public class MessageController {

	@Autowired
    private StreamBridge streamBridge;

    /**
     * 发送广播消息
     * 
     * @param body
     * @return
     */
    @RequestMapping("/sendBroadcast")
    public String sendBroadcast(@RequestParam("msg") String msg) {
        MessageDTO messageDTO = new MessageDTO();
        messageDTO.setPayload(msg);
        // 生产消息
        // 第一个参数是绑定名称，格式为：自定义的绑定名称-out-0，myBroadcast是自定义的绑定名称，out代表生产者，0是固定写法
        // 自定义的绑定名称必须与消费方法的方法名保持一致
        // 第二个参数是发送的消息实体
        boolean sendResult = streamBridge.send("myBroadcast0-out-0", messageDTO);
        System.out.println(sendResult);
        return "SUCCESS";
    }
	
}
